/**
 * 业务成功的返回值
 * @param {any} data 请求返回的数据
 * @param {string} msg 请求返回的信息
 * @param {number} code 请求返回的标志code
 */
export function resultSuccess(data, msg = "success", code = 200) {
	return { code, data, msg };
}

/**
 * 业务失败的返回值（注意不是请求失败）
 * @param {any} data 请求返回的数据
 * @param {string} msg 请求返回的信息
 * @param {number} code 请求返回的标志code
 */
export function resultError(data, msg = "failed", code = 400) {
	return { code, data, msg };
}

/**
 * 列表分页的返回值
 * @param {number} page 页码
 * @param {number} limit 一页多少条数据
 * @param {any[]} list 总的数据列表
 */
export function pageResultSuccess(page, limit, list) {
	const pageData = pagination(page, limit, list);
	return resultSuccess({
		data: pageData,
		total: list.length,
		page,
		limit,
	});
}

/**
 * 根据分页参数截取列表数据
 * @param {number} page 页码
 * @param {number} limit 一页多少条数据
 * @param {any[]} list 总的数据列表
 */
function pagination(page, limit, list) {
	const offset = (page - 1) * Number(limit);
	return offset + Number(limit) >= list.length
		? list.slice(offset, list.length)
		: list.slice(offset, offset + Number(limit));
}
